package com.kexio.core.data.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 审计实体基类
 * 
 * 在BaseEntity基础上增加审计字段：
 * - createdBy: 创建者ID
 * - updatedBy: 更新者ID
 * 
 * 适用于需要记录操作人的业务实体
 * 
 * @author Kexio
 * @since 1.0.0
 */
@Data
@EqualsAndHashCode(callSuper = true)
public abstract class AuditEntity extends BaseEntity {

    /**
     * 创建者ID
     */
    @TableField(fill = FieldFill.INSERT)
    private Long createdBy;

    /**
     * 更新者ID
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updatedBy;

    /**
     * 租户ID (多租户场景)
     */
    @TableField(fill = FieldFill.INSERT)
    private Long tenantId;
}
